package org.nepu.scr.indexrate.ratelongevity;

import lombok.AllArgsConstructor;
import lombok.SneakyThrows;
import lombok.extern.slf4j.Slf4j;
import org.nepu.scr.DTO.ReturnDataDTO;
import org.nepu.scr.indexrate.ratelongevity.longevity.params.LongevityData;
import org.springframework.stereotype.Service;

import java.util.ArrayList;
import java.util.List;

@Slf4j
@Service
@AllArgsConstructor
public class LongevityBuildService {


    @SneakyThrows
    public List<ReturnDataDTO> buildData(LongevityData data){

        List<ReturnDataDTO> rData = new ArrayList<>();

        //构建C------C1
        ReturnDataDTO C11 = new ReturnDataDTO("井架",data.getC11(),null);
        ReturnDataDTO C12 = new ReturnDataDTO("底座",data.getC12(),null);
        ReturnDataDTO C13 = new ReturnDataDTO("绞车",data.getC13(),null);

        List<ReturnDataDTO> C1List = new ArrayList<>();
        C1List.add(C11);
        C1List.add(C12);
        C1List.add(C13);

        ReturnDataDTO C1 = new ReturnDataDTO("井架、底座、绞车资料",data.getC1(),C1List);

        //构建C------C2
        ReturnDataDTO C21 = new ReturnDataDTO("井架",data.getC21(),null);
        ReturnDataDTO C22 = new ReturnDataDTO("钻井绞车",data.getC22(),null);
        ReturnDataDTO C23 = new ReturnDataDTO("底座",data.getC23(),null);

        List<ReturnDataDTO> C2List = new ArrayList<>();
        C2List.add(C21);
        C2List.add(C22);
        C2List.add(C23);

        ReturnDataDTO C2 = new ReturnDataDTO("井架、底座、绞车现场检查",data.getC2(),C2List);

        //构建C------C3
        ReturnDataDTO C31 = new ReturnDataDTO("运行情况检查",data.getC31(),null);
        ReturnDataDTO C32 = new ReturnDataDTO("设备故障诊断",data.getC32(),null);

        List<ReturnDataDTO> C3List = new ArrayList<>();
        C3List.add(C31);
        C3List.add(C32);

        ReturnDataDTO C3 = new ReturnDataDTO("井架、底座、绞车功能试验",data.getC3(),C3List);

        //构建C------C4
        ReturnDataDTO C41 = new ReturnDataDTO("应力测试",data.getC41(),null);

        List<ReturnDataDTO> C4List = new ArrayList<>();
        C4List.add(C41);

        ReturnDataDTO C4 = new ReturnDataDTO("井架承载能力检测",data.getC4(),C4List);

        //构建C------C5
        ReturnDataDTO C51 = new ReturnDataDTO("强度校核",data.getC51(),null);
        ReturnDataDTO C52 = new ReturnDataDTO("检验结果分析",data.getC52(),null);

        List<ReturnDataDTO> C5List = new ArrayList<>();
        C5List.add(C51);
        C5List.add(C52);

        ReturnDataDTO C5 = new ReturnDataDTO("井架、底座、绞车结构强度",data.getC5(),C5List);

        //构建C
        List<ReturnDataDTO> CList = new ArrayList<>();

        ReturnDataDTO C = new ReturnDataDTO("延寿评级（叛废）",data.getC(),CList);

        CList.add(C1);
        CList.add(C2);
        CList.add(C3);
        CList.add(C4);
        CList.add(C5);
        C.setChildren(CList);

        rData.add(C);

        return rData;
    }
}
